home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / engrave / engrave_group.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  89 lines

  1. #ifndef ENGRAVE_GROUP_H
  2. #define ENGRAVE_GROUP_H
  3.  
  4. /**
  5.  * @file engrave_group.h Engrave_Group functions
  6.  * @brief Contains all of the functions to maniuplate Engrave_Group objects.
  7.  */
  8.  
  9. /**
  10.  * @defgroup Engrave_Group Engrave_Group: Functions to work with an Engrave_Group.
  11.  *
  12.  * @{
  13.  */
  14.  
  15. /**
  16.  * The Engrave_Group typedef
  17.  */
  18. typedef struct _Engrave_Group Engrave_Group;
  19.  
  20. /**
  21.  * Stores the needed group information.
  22.  */
  23. struct _Engrave_Group
  24. {
  25.   char *name;           /**< The group name */
  26.   /**
  27.    * The max/min size values for the group 
  28.    */
  29.   struct
  30.   {
  31.     int w;          /**< The width */
  32.     int h;          /**< The height */
  33.   } min, max;
  34.  
  35.   Evas_List *parts;     /**< The list of parts in this group */
  36.   Evas_List *programs;  /**< The list of programs in this group */
  37.   Evas_List *data;      /**< The list of data used in this group */
  38.  
  39.   char *script;         /**< The script attached to this group */
  40.  
  41.   void *parent; /**< Pointer to parent */
  42. };
  43.  
  44. Engrave_Group *engrave_group_new(void);
  45. void engrave_group_free(Engrave_Group *eg);
  46.  
  47. void engrave_group_parent_set(Engrave_Group *eg, void *ef);
  48. void *engrave_group_parent_get(Engrave_Group *eg);
  49.  
  50. void engrave_group_data_add(Engrave_Group *eg, Engrave_Data *ed);
  51. void engrave_group_part_add(Engrave_Group *eg, Engrave_Part *ep);
  52. void engrave_group_program_add(Engrave_Group *eg, Engrave_Program *ep);
  53.  
  54. void engrave_group_script_set(Engrave_Group *eg, const char *script);
  55. void engrave_group_name_set(Engrave_Group *eg, const char *name);
  56. void engrave_group_min_size_set(Engrave_Group *eg, int w, int h);
  57. void engrave_group_max_size_set(Engrave_Group *eg, int w, int h);
  58.  
  59. Engrave_Part * engrave_group_part_last_get(Engrave_Group *eg);
  60. Engrave_Program * engrave_group_program_last_get(Engrave_Group *eg);
  61.  
  62. const char *engrave_group_name_get(Engrave_Group *eg);
  63. const char *engrave_group_script_get(Engrave_Group *eg);
  64. void engrave_group_min_size_get(Engrave_Group *eg, int *w, int *h);
  65. void engrave_group_max_size_get(Engrave_Group *eg, int *w, int *h);
  66.  
  67. int engrave_group_data_count(Engrave_Group *eg);
  68. int engrave_group_parts_count(Engrave_Group *eg);
  69. int engrave_group_programs_count(Engrave_Group *eg);
  70.  
  71. void engrave_group_data_foreach(Engrave_Group *eg, 
  72.                         void (*func)(Engrave_Data *, void *), void *data);
  73. void engrave_group_parts_foreach(Engrave_Group *eg, 
  74.                         void (*func)(Engrave_Part *, void *), void *data);
  75. void engrave_group_programs_foreach(Engrave_Group *eg, 
  76.                         void (*func)(Engrave_Program *, void *), void *data);
  77.  
  78. Engrave_Part *engrave_group_part_by_name_find(Engrave_Group *eg, 
  79.                                     const char *part);
  80. Engrave_Data *engrave_group_data_by_key_find(Engrave_Group *eg, 
  81.                                     const char *key);
  82.  
  83. /**
  84.  * @}
  85.  */
  86.  
  87. #endif
  88.  
  89.